目的
FreeIPAに関する日本語の情報が少なく、構築する機会があったため、情報整理も兼ねて手順を記事にまとめました。
FreeIPAとは
Red Hatが開発しているオープンソースのLinux/Unix系OS向けの統合認証基盤です。
WindowsのActive Directoryのような機能を持ち、LDAP、Kerberos、SSSD、DNS、証明書管理などを統合的に提供します。
関連する主要技術
Active Directoryとは
Active Directory(AD)は、Microsoftが開発したWindows環境向けのネットワーク内のリソースを管理するための仕組みです。
ネットワーク上に存在するパソコン、サーバー、プリンター、アプリケーションなど、企業内のさまざまなリソースを集約し、一元的に管理できます。
LDAPとは
LDAP(Lightweight Directory Access Protocol)は、ディレクトリサービスにアクセスするための標準プロトコルです。ユーザー、グループ、コンピュータなどの組織情報を一元管理し、検索・認証に利用するために使われます。
FreeIPAでは、ユーザー情報やグループ情報などを管理する基盤としてLDAPディレクトリが使われます。
Kerberosとは
Kerberosはネットワーク上でユーザー・コンピューター・サービスの身元を確認するための認証プロトコルです。
SSSDとは
SSSD(System Security Services Daemon)は、LinuxクライアントがFreeIPA・Active Directory・LDAP・Kerberosなどの外部認証基盤を利用するためのシステムサービスです。
前提環境
| 項目 | 値 |
|---|---|
| OS | AlmaLinux 9.6 |
| FreeIPAバージョン | 4.12.2 |
| ホスト名 | ipa.example.test |
| REALM | EXAMPLE.TEST |
| ドメイン名 | example.test |
作業手順
1. ホスト名設定
FreeIPAは自ホストのFQDNを解決できることが前提のため、/etc/hosts に自ホストのIPとFQDNを登録します。
# vi /etc/hosts
192.168.1.10 ipa.example.test ipa
# vi /etc/hostname
ipa.example.test
2. 名前解決設定
--setup-dns でFreeIPA内蔵DNSを構築するため、自分自身(127.0.0.1)を参照させます。
# vi /etc/resolv.conf
search example.test
nameserver 127.0.0.1
3. パッケージインストール
# dnf -y update
# dnf -y install freeipa-server freeipa-server-dns
4. FreeIPAサーバーインストール
-p はadminパスワード、-a はDirectory Managerパスワードです。
# ipa-server-install -U \
--setup-dns \
--no-forwarders \
--hostname=ipa.example.test \
--realm=EXAMPLE.TEST \
--domain=example.test \
-p 'test2026' \
-a 'test2026' \
--mkhomedir
5. firewalld設定
FreeIPAが使用するポート(HTTP/HTTPS、LDAP/LDAPS、Kerberos、DNS、NTP)を開放します。
# firewall-cmd --permanent \
--add-port={80/tcp,443/tcp,389/tcp,636/tcp,88/tcp,464/tcp,53/tcp,88/udp,464/udp,53/udp,123/udp}
# firewall-cmd --reload
6. 動作確認
# 各サービスの起動状態を確認
# ipactl status
# adminでKerberosチケットを取得
# kinit admin
# ユーザー一覧を取得できれば成功
# ipa user-find
Web UIは https://ipa.example.test にアクセスし、admin でログインできることを確認します。
ハマりどころ
-
--mkhomedirを付けずにインストールすると、IPAユーザーのログイン時にホームディレクトリが作成されません。インストール済みの環境ではauthselect select sssd with-mkhomedir with-sudo --forceで後から有効化できます。 - レプリケーション構成を行う際は、レプリカ側の時刻をメイン側に同期しておく必要があります。ずれていると
replica installがエラーで失敗します。 - レプリケーション構成時は、レプリカ側の
/etc/resolv.confをメイン側のIPに固定しないとエラーになります。